# Maintainer: Fathi Boudra <fathi.boudra@linaro.org>
pkgname=libguestfs
pkgver=1.40.2
pkgrel=5
pkgdesc="tools for accessing and modifying virtual machine disk images"
url="http://libguestfs.org/"
arch="x86_64"
license="GPL-2.0-or-later"
depends="cdrkit curl gptfdisk qemu-img qemu-system-x86_64"
makedepends="
 autoconf automake libtool
 acl-dev
 augeas-dev
 bash
 bison
 coreutils
 cpio
 file-dev
 flex
 fuse-dev
 gawk
 gettext-dev
 hivex-dev
 jansson-dev
 gperf
 libcap-dev
 libconfig-dev
 libselinux-dev
 libselinux-utils
 libtirpc-dev
 libvirt-dev
 libxml2-dev
 libxml2-utils
 ncurses-dev
 ocaml
 ocaml-findlib
 pcre-dev
 perl
 psmisc
 python3-dev
 readline-dev
 xz
 xz-dev
"
subpackages="$pkgname-dev $pkgname-doc $pkgname-lang py3-$pkgname:_py"
source="
 http://download.libguestfs.org/1.40-stable/$pkgname-$pkgver.tar.gz
 https://raw.githubusercontent.com/alpinelinux/aports/3.9-stable/main/kbd/error.h
 python-3.8.patch
"
options="!check charset.alias" # Test suite does not support Alpine Linux at this moment

prepare() {
	default_prepare
	autoreconf -vif
	# busybox gzip does not support --best
	sed -i 's/gzip --best/gzip -9/g' test-data/files/*
	# musl lacks error.h
	cp -a "$srcdir"/error.h "$builddir"/lib/
}

build() {
	PYTHON=/usr/bin/python3 ./configure \
		--prefix=/usr \
		--mandir=/usr/share/man \
		--sysconfdir=/etc \
		--disable-probes \
		--disable-daemon \
		--disable-appliance \
		--disable-ocaml \
		--disable-perl \
		--disable-ruby \
		--disable-haskell \
		--disable-php \
		--disable-erlang \
		--disable-lua \
		--disable-golang \
		--disable-gobject \
		--without-java
	# Building index-parse.c and index-scan.c by hand works around a race
	# condition in the autotools cruft, where two other more copies of yacc
	# race with each other, resulting in a corrupted file.
	make -j1 -C builder index-parse.c
	make -j1 -C builder index-scan.c
	make V=1 INSTALLDIRS=vendor LTLIBINTL=-lintl
}

# FIXME test require supermin to create an appliance or a prebuilt binary appliance
# check() {
# 	cd "$builddir"
# 	wget http://download.libguestfs.org/binaries/appliance/appliance-1.38.0.tar.xz -O /tmp/appliance-1.38.0.tar.xz
# 	$(cd /tmp && tar xf appliance-1.38.0.tar.xz)
# 	export LIBGUESTFS_PATH=/tmp/appliance
# 	make quickcheck
# }

package() {
	make V=1 INSTALLDIRS=vendor DESTDIR="$pkgdir" install
	make V=1 INSTALLDIRS=vendor DESTDIR="$pkgdir" -C python install
}

_py() {
	local _py=${subpkgname##-*}
	local _pyver=${_py%py}
	pkgdesc="$pkgname - Python 3 bindings"
	mkdir -p "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/python3* "$subpkgdir"/usr/lib/
}

sha512sums="d288f15d5a70b4b87a4271ea2eb7dc0ec4f48fdb136b8f62003352a069f75573de873e1063763889f410fb1b99951252e9a48dd73bf0233047f21aae43ac6de2  libguestfs-1.40.2.tar.gz
c66f6b0d8c8b8d285c740bdbe7130dee272ac01cd5e73b35a58cedf1a77fe8d9e062631b804fb58014d8eb9861c8f28aed07bc022ef31662bcc61b5c85a21752  error.h
8c22a83043d965e8404228f224c5daa83bdf3ea9ddbe56dd8f1afd76344cdd61d664d9086160844dc0bcd02cc737c083db116010bca912a65806b52630dcc366  python-3.8.patch"
